package com.je.app.view.popUp;

import java.awt.Color;
import java.awt.Dimension;



import javax.swing.JDialog;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;

import java.awt.Font;

import javax.swing.SwingConstants;
import javax.swing.JButton;

import java.awt.SystemColor;

import javax.swing.UIManager;

import com.je.app.control.ControlSesion;
import com.je.app.view.MainFrame;
import com.je.app.view.MainFrame.MessageType;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JTable;
import javax.swing.JTextField;

import java.awt.Insets;

import javax.swing.JSeparator;
import javax.swing.table.DefaultTableModel;

public class MostrarUsuariosNoAdmitidos extends JDialog {
	private JTable tablaUsuarios;
	private JTextField txtNuevosUsuarioRegistrados;
	
	public MostrarUsuariosNoAdmitidos(String [][] matrizUsuarios) {
		
		setSize(new Dimension(480, 450));		
		getContentPane().setLayout(null);
		setLocationRelativeTo(null);
		setTitle("Admitir nuevos usuarios");
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(40, 52, 278, 321);
		getContentPane().add(scrollPane);
		
		tablaUsuarios = new JTable();
		tablaUsuarios.setModel(new DefaultTableModel(
			matrizUsuarios,
			new String[] {
				"ID", "Nombre y apellido"
			}
		) {
			Class[] columnTypes = new Class[] {
				String.class, String.class
			};
			public Class getColumnClass(int columnIndex) {
				return columnTypes[columnIndex];
			}
			boolean[] columnEditables = new boolean[] {
				false, false
			};
			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		});
		tablaUsuarios.getColumnModel().getColumn(0).setResizable(false);
		tablaUsuarios.getColumnModel().getColumn(0).setPreferredWidth(65);
		tablaUsuarios.getColumnModel().getColumn(1).setResizable(false);
		tablaUsuarios.getColumnModel().getColumn(1).setPreferredWidth(175);
		tablaUsuarios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		scrollPane.setViewportView(tablaUsuarios);
		
		JButton botonAdmitir = new JButton("Admitir");
		botonAdmitir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				int filaSeleccionada = tablaUsuarios.getSelectedRow();
				if(filaSeleccionada<0){
					//ERROR -> SELECCIONAR UNA FILA
					MainFrame.getInstance().showMessage(MessageType.ERROR, "No ha seleccionado ningun usuario");
				}
				else{
					//LLAMAR AL CONTROL; ADMITIR USUARIO
					ControlSesion.getInstance().admitirUsuario(filaSeleccionada);
					
					//ELIMINAR FILA DE LA TABLA
					((DefaultTableModel) tablaUsuarios.getModel()).removeRow(filaSeleccionada);
				}
			}
		});
		botonAdmitir.setForeground(Color.BLACK);
		botonAdmitir.setFont(new Font("Tahoma", Font.PLAIN, 12));
		botonAdmitir.setBorder(UIManager.getBorder("Button.border"));
		botonAdmitir.setBackground(SystemColor.activeCaptionBorder);
		botonAdmitir.setBounds(342, 76, 84, 26);
		getContentPane().add(botonAdmitir);
		
		JButton botonRechazar = new JButton("Rechazar");
		botonRechazar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				int filaSeleccionada = tablaUsuarios.getSelectedRow();
				if(filaSeleccionada<0){
					//ERROR -> SELECCIONAR UNA FILA
					MainFrame.getInstance().showMessage(MessageType.ERROR, "No ha seleccionado ningun usuario");
				}
				else{
					//LLAMAR AL CONTROL; ADMITIR USUARIO
					ControlSesion.getInstance().rechazarUsuario(filaSeleccionada);
					
					//ELIMINAR FILA DE LA TABLA
					((DefaultTableModel) tablaUsuarios.getModel()).removeRow(filaSeleccionada);
				}

			}
		});
		botonRechazar.setForeground(Color.BLACK);
		botonRechazar.setFont(new Font("Tahoma", Font.PLAIN, 12));
		botonRechazar.setBorder(UIManager.getBorder("Button.border"));
		botonRechazar.setBackground(SystemColor.activeCaptionBorder);
		botonRechazar.setBounds(342, 113, 84, 26);
		getContentPane().add(botonRechazar);
		
		JButton botonContinuar = new JButton("Continuar");
		botonContinuar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				dispose();
			}
		});
		botonContinuar.setForeground(Color.BLACK);
		botonContinuar.setFont(new Font("Tahoma", Font.PLAIN, 12));
		botonContinuar.setBorder(UIManager.getBorder("Button.border"));
		botonContinuar.setBackground(SystemColor.activeCaptionBorder);
		botonContinuar.setBounds(342, 347, 84, 26);
		getContentPane().add(botonContinuar);
		
		txtNuevosUsuarioRegistrados = new JTextField();
		txtNuevosUsuarioRegistrados.setHorizontalAlignment(SwingConstants.CENTER);
		txtNuevosUsuarioRegistrados.setFont(new Font("Tahoma", Font.PLAIN, 16));
		txtNuevosUsuarioRegistrados.setMargin(new Insets(2, 14, 2, 2));
		txtNuevosUsuarioRegistrados.setBorder(null);
		txtNuevosUsuarioRegistrados.setEditable(false);
		txtNuevosUsuarioRegistrados.setText("Nuevos usuario registrados");
		txtNuevosUsuarioRegistrados.setBounds(30, 11, 213, 20);
		getContentPane().add(txtNuevosUsuarioRegistrados);
		txtNuevosUsuarioRegistrados.setColumns(10);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(10, 22, 444, 1);
		getContentPane().add(separator);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(10, 399, 444, 1);
		getContentPane().add(separator_1);
		
		JSeparator separator_2 = new JSeparator();
		separator_2.setOrientation(SwingConstants.VERTICAL);
		separator_2.setForeground(Color.LIGHT_GRAY);
		separator_2.setBounds(10, 22, 1, 378);
		getContentPane().add(separator_2);
		
		JSeparator separator_3 = new JSeparator();
		separator_3.setOrientation(SwingConstants.VERTICAL);
		separator_3.setForeground(Color.LIGHT_GRAY);
		separator_3.setBounds(453, 22, 1, 378);
		getContentPane().add(separator_3);

		setVisible(true);
	}
}
